home *** CD-ROM | disk | FTP | other *** search
/ AMIGA-CD 2 / Amiga-CD - Volume 2.iso / ungepackte_daten / 1994 / 6 / 01 / mini-compiler / mini.ampk / Mini-Compiler / Hilfe / Sprache.hilfe < prev    next >
Encoding:
Text File  |  1995-06-01  |  4.5 KB  |  117 lines

  1. %Item
  2. 0004 45 13 Extern.Hilfe
  3. %Text
  4. 2           Hilfe zur Sprache
  5. 1
  6. 1 Mini-Comp  übersetzt eine  Pascal-artige Sprache in aus-
  7. 1führbaren Maschinencode. Dabei kann eigener Assemblercode
  8. 1eingebaut werden, wenn bestimmte  Regeln beachtet werden.
  9. 1Im folgenden  soll die Syntax der Sprache  mit Hilfe  von
  10. 1Syntaxdiagrammen beschrieben werden. Um  die Syntax eines
  11. 1bestimmten Befehls zu betrachten, klicken Sie  diesen Be-
  12. 1fehl einfach an.
  13. 1
  14. 5Eine Abweichung zu den Diagrammen liegt vor :
  15. 1
  16. 1Bei den Schlüsselwörtern VAR, CONST und TYPE wird IMMER
  17. 1mindestens ein Eintrag erwartet, auch wenn das Diagramm
  18. 1dies nicht verlangt !
  19. 1
  20. 1Arrayindeces dürfen nur vom Typ Integer sein !
  21. 1
  22. 8Syntaxdiagramme :
  23. 1
  24. 1 Programm  --»  "PROGRAM" <id> ";"
  25. 1                <Const>
  26. 1                <Type>
  27. 1                <Var>
  28. 1                <Routines>
  29. 1                <Block> "."
  30. 1 Const     --»  "CONST" <Consts>  | ¢
  31. 1 Consts    --»  <Consts> ";" <Constlist>
  32. 1 Constlist --»  <id> "=" ( <Real> | <Int>  |
  33. 1                           <Char> | <Bool> |
  34. 1                           <String> ) | ¢
  35. 1 Type      --»  "TYPE"  <Typelist>  | ¢
  36. 1 Typelist  --»  <Typelist> ";" <Typedef>
  37. 1 Typedef   --»  <id> "=" <Typeart>
  38. 1 Typeart   --»  <Array> | <Record> | <Simpel> | <id>  |
  39. 1                <Aufz>
  40. 1 Aufz      --»  "(" <id> { "," <id> } ")"
  41. 1 Simpel    --»  "BOOLEAN" | "CHAR"   | "REAL"  | "TEXT" |
  42. 1                "STRING"  | "FILE"   | "INTEGER"
  43. 1 Array     --»  "ARRAY" "[" <int> "]" "OF" <Typeart>
  44. 1 Record    --»  "RECORD" <Recinh> "END"
  45. 1 Recinh    --»  <Recinh> ";" <Felddecl> | ¢
  46. 1 Felddecl  --»  <id> { "," <id> } ":" <Typart>
  47. 1 Var       --»  "VAR" <Varlist> | ¢
  48. 1 Varlist   --»  <Decl> { <Decl> }
  49. 1 Decl      --»  <id> { "," <id> } ":" <Typart> ";"
  50. 1 Routines  --»  { ( <Funcdecl> | <Procdecl | ¢ ) }
  51. 1 Funcdecl  --»  "FUNCTION" <id> <Param> ":" <Typart> ";"
  52. 1                  <Const>
  53. 1                  <Type>
  54. 1                  <Var>
  55. 1                  <Routines>
  56. 1                  <Block> ";"    |
  57. 1                  "EXTERNAL" ";" | "FORWARD" ";"
  58. 1 Procdecl  --»  "PROCEDURE" <id> <Param> ";"
  59. 1                  <Const>
  60. 1                  <Type>
  61. 1                  <Var>
  62. 1                  <Routines>
  63. 1                  <Block> ";"    |
  64. 1                  "EXTERNAL" ";" | "FORWARD" ";"
  65. 1 Param     --»  "(" <Parlist> ")" | ¢
  66. 1 Parlist   --»  [ "VAR" ] <Decl> { [ "VAR" ] <Decl> }
  67. 1 Block     --»  "BEGIN" <Bliste> "END"
  68. 1 Bliste    --»  <Bliste> ";" <Befehl> | ¢
  69. 1 Befehl    --»  <While>   | <Repeat> | <If>    | <Call> |
  70. 1                <Assign>  | <Case>   | <For>   | <Read> |
  71. 1                <Rewrite> | <Append> | <Write> | <Seek> |
  72. 1                <Close>   | <Return> | <Reset> | <Block>
  73. 1 Return    --»  "RETURN" "(" <Expr> ")"
  74. 1 While     --»  "WHILE" <Expr> "DO" <Bliste>
  75. 1 Repeat    --»  "REPEAT" <Bliste> "UNTIL" <Expr>
  76. 1 If        --»  "IF" <Expr> "THEN" <Befehl>
  77. 1                [ "ELSE" <Befehl> ]
  78. 1 Assign    --»  <Variabel> ":=" <Expr>
  79. 1 Variabel  --»  <id> {  <ArrAdr> | <RecAdr>  }
  80. 1 ArrAdr    --»  "[" <Expr> "]"
  81. 1 RecAdr    --»  "." <Variabel>
  82. 1 For       --»  "FOR" <Variabel> ":=" <Expr> ( "TO" |
  83. 1                "DOWNTO" <Expr> [ "BY" <Expr> ] "DO"
  84. 1                <Befehl>
  85. 1 Case      --»  "CASE" <Variabel> "OF"
  86. 1                  <Fälle>
  87. 1                "END"
  88. 1 Fälle     --»  <Fälle> ";" <Fall> | <Fall> | ¢
  89. 1 Fall      --»  <Casefall> ":" <Befehl> ";" |
  90. 1                "ELSE" <Befehl> ";"
  91. 1 Casefall  --»  <Casefall> "," <Konsta> | <Konsta>
  92. 1 Konsta    --»  <Konst> ".." <Konst> | <Konst>
  93. 1 Konst     --»  <Bool> | <Char> | <Int>
  94. 1 Write     --»  "WRITE"   <Callpar> |
  95. 1                "WRITELN" <Callpar>
  96. 1 Read      --»  "READ"    <Callpar> |
  97. 1                "READLN"  <Callpar>
  98. 1 Close     --»  "CLOSE"   "(" <Variabel> ")"
  99. 1 Reset     --»  "RESET"   "(" <Variabel> "," <String> ")"
  100. 1 Append    --»  "APPEND"  "(" <Variabel> "," <String> ")"
  101. 1 Rewrite   --»  "REWRITE" "(" <Variabel> "," <String> ")"
  102. 1 Seek      --»  "SEEK"    "(" <Variabel> "," <Expr>   ")"
  103. 1 Expr      --»  <Relexpr> { ( "AND" | "OR" ) <Relexpr> }
  104. 1 Relexpr   --»  <Intexpr> { <Relation> <Intexpr> }
  105. 1 Relation  --»  ( "<" | "<>" | "<=" | ">" | "=> | "=" )
  106. 1 Intexpr   --»  <Term>   { ( "+" | "-" ) <Term> }
  107. 1 Term      --»  <Factor>
  108. 1                { ( "*" | "/" | "MOD" | "DIV" ) <Factor> }
  109. 1 Factor    --»  <String> | <Variabel> | <Int> | <Real> |
  110. 1                "TRUE"   | "FALSE"    | "NOT" <Factor> |
  111. 1                <Call>   | "-" <Factor> | "(" <Expr> ")"
  112. 1 String    --»  "'" <Char> { <Char> } "'"
  113. 1 Real      --»  <Int> | <Int> "." | <Int> "." <Int>
  114. %Ende
  115.  
  116.  
  117.